Technological advances in digital transmission networks, video servers, digital storage media, very large scale integration devices and digital processing of video and audio signals are converging to make the transmission and storage of digital video economical in a wide variety of applications. Because the storage and transmission of digital video signals is central to many applications, and because an uncompressed representation of a video signal requires a large amount of storage and network bandwidth, the use of digital video compression is vital to this advancing art. In this regard, several international standards for the compression of digital video signals have emerged over the past decade, with more currently under development. Of these video compression standards, the ones used most widely are the MPEG standards.
MPEG video employs three types of compressed "pictures", i.e. I, P and B types. I and P pictures are called anchor pictures. An I picture can be decoded by itself without resort to other data. A P picture requires data from a previously decompressed anchor picture to enable its decompression. A B picture requires data from both preceding and succeeding anchor pictures to allow its decompression.
MPEG compressed digital video is often stored on a video server and is delivered on demand to a client. Many interactive video servers are required to support "trick play" modes, i.e., fast-forward-play and fast-reverse-play (rewind). While watching a video, the client may request fast-forward-play or fast rewind.
Several methods are used to allow interactive video servers to perform fast-forward play and fast-rewind play. An obvious potential solution to the problem is to supply the user with I-pictures in the fast-forward mode, but this results in jerky picture quality because of uneven I-picture spacing, and because certain buffering constraints are violated. In addition, since I-pictures are large, fast-forward will result in higher data rates than in the normal play mode, if every I frame is displayed.
In order to keep the data rate constant during fast-forward play, video servers use an ancillary data stream which is constructed as follows. To obtain a fast-forward play speed of n, a new video consisting of every n'th picture of the original video, is constructed. This new video is then compressed to an I-picture only stream of MPEG video, using MPEG compression parameters (including the bitrate) identical to those used in compressing the original video.
The rewind function is provided by another ancillary stream. This stream is constructed in exactly the same manner as the ancillary stream for fast-forward play, except that every n'th picture of the original video is picked in the reverse order, starting with the last picture. The drawback of this conventional scheme is that for every fast-forward or rewind speed needed, another ancillary stream is needed. This makes the storage required for multiple speed fast-forward and rewind actions prohibitively expensive.
An economical method is needed for allowing multiple speed fast-forward and reverse play of MPEG video.